#ifndef __TEAMAKER_H__
#define __TEAMAKER_H__

// Qt Includes
#include <QObject>
#include <QHostAddress>

// Qt Declarations
class QTcpServer;

// Local Declarations
class CTeaMakerTrayIcon;
class CTeaMakerServerSocket;
class CTMThreadManager;

// ************************************************************
// CTeaMaker
// ************************************************************
class CTeaMaker : public QObject
{
	Q_OBJECT

public:
// Construction & Destruction
	CTeaMaker(QObject *const parent = NULL);
	~CTeaMaker();

// Member Functions
	bool listen(const QHostAddress &address = QHostAddress::Any,
		quint16 port = 0);

private slots:
	void showConfigUI();

private:
// Member Functions
	void createTrayIcon();

// Member Variables
	CTeaMakerTrayIcon *m_pTrayIcon;
	CTeaMakerServerSocket *m_pTcpServer;
	CTMThreadManager *m_pThreadManager;
};

#endif // #ifndef __TEAMAKER_H__
